# uncomment to run, then recomment it out so you don't run it every time
# census_api_key("APIKEYCODE", install=TRUE)gaincome
# Here we chose variables we want
myvars <- c(totalpop = "B01003_001",
medincome = "B19013_001",
medage = "B01002_001"
)#Here I pulled a list of counties in GA
ga_counties_withgeo <- get_acs(geography = "county",
variables = c(myvars),
state = "GA",
output = "wide",
geometry = TRUE)Getting data from the 2017-2021 5-year ACS
Warning: • You have not set a Census API key. Users without a key are limited to 500
queries per day and may experience performance limitations.
ℹ For best results, get a Census API key at
http://api.census.gov/data/key_signup.html and then supply the key to the
`census_api_key()` function to use it throughout your tidycensus session.
This warning is displayed once per session.
Downloading feature geometry from the Census website. To cache shapefiles for use in future sessions, set `options(tigris_use_cache = TRUE)`.
|
| | 0%
|
| | 1%
|
|= | 1%
|
|= | 2%
|
|== | 2%
|
|== | 3%
|
|=== | 4%
|
|=== | 5%
|
|==== | 5%
|
|==== | 6%
|
|===== | 7%
|
|===== | 8%
|
|====== | 8%
|
|====== | 9%
|
|======= | 9%
|
|======= | 10%
|
|======= | 11%
|
|======== | 11%
|
|======== | 12%
|
|=========== | 15%
|
|============= | 19%
|
|=============== | 21%
|
|================= | 24%
|
|==================== | 28%
|
|====================== | 31%
|
|======================== | 35%
|
|=========================== | 38%
|
|============================= | 42%
|
|================================ | 45%
|
|================================== | 49%
|
|===================================== | 52%
|
|======================================= | 56%
|
|========================================== | 59%
|
|============================================ | 63%
|
|============================================== | 66%
|
|================================================= | 70%
|
|=================================================== | 73%
|
|====================================================== | 77%
|
|======================================================== | 80%
|
|=========================================================== | 84%
|
|============================================================= | 87%
|
|=============================================================== | 91%
|
|================================================================== | 94%
|
|==================================================================== | 98%
|
|======================================================================| 100%
ga_counties_withgeoSimple feature collection with 159 features and 8 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: -85.60516 ymin: 30.35785 xmax: -80.84038 ymax: 35.00124
Geodetic CRS: NAD83
First 10 features:
GEOID NAME totalpopE totalpopM medincomeE medincomeM
1 13021 Bibb County, Georgia 156711 NA 43862 1778
2 13049 Charlton County, Georgia 12416 NA 45494 5791
3 13283 Treutlen County, Georgia 6410 NA 35441 9710
4 13309 Wheeler County, Georgia 7568 NA 26776 3605
5 13279 Toombs County, Georgia 26956 NA 42975 3095
6 13077 Coweta County, Georgia 144928 NA 83486 2974
7 13153 Houston County, Georgia 161177 NA 70313 3057
8 13183 Long County, Georgia 16398 NA 52742 8858
9 13163 Jefferson County, Georgia 15708 NA 42238 4150
10 13261 Sumter County, Georgia 29690 NA 36687 2163
medageE medageM geometry
1 36.2 0.3 MULTIPOLYGON (((-83.89192 3...
2 40.6 1.5 MULTIPOLYGON (((-82.4156 31...
3 39.9 5.3 MULTIPOLYGON (((-82.74762 3...
4 33.6 10.0 MULTIPOLYGON (((-82.93976 3...
5 37.8 0.9 MULTIPOLYGON (((-82.48038 3...
6 38.9 0.3 MULTIPOLYGON (((-85.0132 33...
7 35.9 0.3 MULTIPOLYGON (((-83.85685 3...
8 33.7 0.8 MULTIPOLYGON (((-81.98162 3...
9 40.5 0.8 MULTIPOLYGON (((-82.66192 3...
10 37.0 1.1 MULTIPOLYGON (((-84.44381 3...
#Then, I pulled a list of all of the counties in the US
all_counties_withgeo <- get_acs(geography = "county",
variables = c(myvars),
output = "wide",
geometry = TRUE)Getting data from the 2017-2021 5-year ACS
Downloading feature geometry from the Census website. To cache shapefiles for use in future sessions, set `options(tigris_use_cache = TRUE)`.
all_counties_withgeoSimple feature collection with 3221 features and 8 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: -179.1489 ymin: 17.88328 xmax: 179.7785 ymax: 71.36516
Geodetic CRS: NAD83
First 10 features:
GEOID NAME totalpopE totalpopM medincomeE
1 20161 Riley County, Kansas 72602 NA 53296
2 19159 Ringgold County, Iowa 4739 NA 57700
3 30009 Carbon County, Montana 10488 NA 63178
4 16007 Bear Lake County, Idaho 6327 NA 60337
5 55011 Buffalo County, Wisconsin 13314 NA 61167
6 31185 York County, Nebraska 14164 NA 66337
7 08037 Eagle County, Colorado 55693 NA 91338
8 42129 Westmoreland County, Pennsylvania 355107 NA 64708
9 40079 Le Flore County, Oklahoma 48436 NA 43049
10 48053 Burnet County, Texas 48424 NA 65363
medincomeM medageE medageM geometry
1 2489 25.5 0.1 MULTIPOLYGON (((-96.96095 3...
2 5058 44.3 1.0 MULTIPOLYGON (((-94.47167 4...
3 4261 50.7 0.9 MULTIPOLYGON (((-109.7987 4...
4 7039 38.9 1.1 MULTIPOLYGON (((-111.6345 4...
5 2352 46.5 0.5 MULTIPOLYGON (((-92.08384 4...
6 4128 39.5 1.2 MULTIPOLYGON (((-97.82629 4...
7 4058 37.8 0.8 MULTIPOLYGON (((-107.1137 3...
8 1350 47.1 0.2 MULTIPOLYGON (((-79.90487 4...
9 1869 38.8 0.3 MULTIPOLYGON (((-95.05996 3...
10 4694 44.7 0.3 MULTIPOLYGON (((-98.45924 3...
#remove MOE columns - they all end with "M"
ga_counties_withgeo <- ga_counties_withgeo %>%
select(-ends_with("M"))
ga_counties_withgeoSimple feature collection with 159 features and 5 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: -85.60516 ymin: 30.35785 xmax: -80.84038 ymax: 35.00124
Geodetic CRS: NAD83
First 10 features:
GEOID NAME totalpopE medincomeE medageE
1 13021 Bibb County, Georgia 156711 43862 36.2
2 13049 Charlton County, Georgia 12416 45494 40.6
3 13283 Treutlen County, Georgia 6410 35441 39.9
4 13309 Wheeler County, Georgia 7568 26776 33.6
5 13279 Toombs County, Georgia 26956 42975 37.8
6 13077 Coweta County, Georgia 144928 83486 38.9
7 13153 Houston County, Georgia 161177 70313 35.9
8 13183 Long County, Georgia 16398 52742 33.7
9 13163 Jefferson County, Georgia 15708 42238 40.5
10 13261 Sumter County, Georgia 29690 36687 37.0
geometry
1 MULTIPOLYGON (((-83.89192 3...
2 MULTIPOLYGON (((-82.4156 31...
3 MULTIPOLYGON (((-82.74762 3...
4 MULTIPOLYGON (((-82.93976 3...
5 MULTIPOLYGON (((-82.48038 3...
6 MULTIPOLYGON (((-85.0132 33...
7 MULTIPOLYGON (((-83.85685 3...
8 MULTIPOLYGON (((-81.98162 3...
9 MULTIPOLYGON (((-82.66192 3...
10 MULTIPOLYGON (((-84.44381 3...
#remove that trailing "E"
colnames(ga_counties_withgeo) <- sub("E$", "", colnames(ga_counties_withgeo)) # $ means end of string only
ga_counties_withgeoSimple feature collection with 159 features and 5 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: -85.60516 ymin: 30.35785 xmax: -80.84038 ymax: 35.00124
Geodetic CRS: NAD83
First 10 features:
GEOID NAM totalpop medincome medage
1 13021 Bibb County, Georgia 156711 43862 36.2
2 13049 Charlton County, Georgia 12416 45494 40.6
3 13283 Treutlen County, Georgia 6410 35441 39.9
4 13309 Wheeler County, Georgia 7568 26776 33.6
5 13279 Toombs County, Georgia 26956 42975 37.8
6 13077 Coweta County, Georgia 144928 83486 38.9
7 13153 Houston County, Georgia 161177 70313 35.9
8 13183 Long County, Georgia 16398 52742 33.7
9 13163 Jefferson County, Georgia 15708 42238 40.5
10 13261 Sumter County, Georgia 29690 36687 37.0
geometry
1 MULTIPOLYGON (((-83.89192 3...
2 MULTIPOLYGON (((-82.4156 31...
3 MULTIPOLYGON (((-82.74762 3...
4 MULTIPOLYGON (((-82.93976 3...
5 MULTIPOLYGON (((-82.48038 3...
6 MULTIPOLYGON (((-85.0132 33...
7 MULTIPOLYGON (((-83.85685 3...
8 MULTIPOLYGON (((-81.98162 3...
9 MULTIPOLYGON (((-82.66192 3...
10 MULTIPOLYGON (((-84.44381 3...
Here I mapped Georgia counties by income, using mapview
mapview(ga_counties_withgeo, zcol = "medincome")This changed the colors of the map
mapview(ga_counties_withgeo, zcol = "medincome",
col.regions = RColorBrewer::brewer.pal(9, "Greens"),
alpha.regions = 1)Warning: Found less unique colors (9) than unique zcol values (159)!
Interpolating color vector to match number of zcol values.
In this step, I changed the darkness of the background.
mapviewOptions("basemaps.color.shuffle" = FALSE)# this changed the maps background from black to white
mapview(ga_counties_withgeo, zcol = "medincome",
col.regions = RColorBrewer::brewer.pal(9, "Greens"),
alpha.regions = 1)Warning: Found less unique colors (9) than unique zcol values (159)!
Interpolating color vector to match number of zcol values.
Here, I mapped Georgia counties by both income and age.
map_income <- mapview(ga_counties_withgeo, zcol = "medincome",
col.regions = RColorBrewer::brewer.pal(9, "Greens"),
alpha.regions = 1)Warning: Found less unique colors (9) than unique zcol values (159)!
Interpolating color vector to match number of zcol values.
map_age <- mapview(ga_counties_withgeo, zcol = "medage",
col.regions = RColorBrewer::brewer.pal(9, "Greens"),
alpha.regions = 1)Warning: Found less unique colors (9) than unique zcol values (97)!
Interpolating color vector to match number of zcol values.
sync(map_income, map_age)# here, i added a slider feature to the two maps.
map_income | map_ageTo turn off legends, hover text, popups
mapview(ga_counties_withgeo, zcol = "medincome",
col.regions = RColorBrewer::brewer.pal(9, "Greens"),
alpha.regions = 1,
legend = FALSE,
label = FALSE,
popup = FALSE)Warning: Found less unique colors (9) than unique zcol values (159)!
Interpolating color vector to match number of zcol values.
This customized labels
mylabel <- glue::glue("{ga_counties_withgeo$NAM} {ga_counties_withgeo$medincome}")
mapview(ga_counties_withgeo, zcol = "medincome",
col.regions = RColorBrewer::brewer.pal(9, "Greens"),
alpha.regions = 1,
label = mylabel)Warning: Found less unique colors (9) than unique zcol values (159)!
Interpolating color vector to match number of zcol values.
Here, I customized the interactive popups
mypopup <- glue::glue("<strong>{ga_counties_withgeo$NAM}</strong><br />
Total Population: {ga_counties_withgeo$totalpop}<br />
Median Income: {ga_counties_withgeo$medincome}") %>%
lapply(htmltools::HTML)
# mylabel <- glue::glue("{all_data$State} {all_data$PctChange10_20}%") %>%
# lapply(htmltools::HTML)head(mypopup)[[1]]
<strong>Bibb County, Georgia</strong><br />
Total Population: 156711<br />
Median Income: 43862
[[2]]
<strong>Charlton County, Georgia</strong><br />
Total Population: 12416<br />
Median Income: 45494
[[3]]
<strong>Treutlen County, Georgia</strong><br />
Total Population: 6410<br />
Median Income: 35441
[[4]]
<strong>Wheeler County, Georgia</strong><br />
Total Population: 7568<br />
Median Income: 26776
[[5]]
<strong>Toombs County, Georgia</strong><br />
Total Population: 26956<br />
Median Income: 42975
[[6]]
<strong>Coweta County, Georgia</strong><br />
Total Population: 144928<br />
Median Income: 83486
mapview(ga_counties_withgeo, zcol = "medincome",
col.regions = RColorBrewer::brewer.pal(9, "Greens"),
alpha.regions = 1,
popup = mypopup)Warning: Found less unique colors (9) than unique zcol values (159)!
Interpolating color vector to match number of zcol values.